﻿using System;
using System.Collections;
using System.Data;
using System.Data.Odbc;
using System.Data.SqlClient;
using System.IO;
using System.Web;
using System.Web.UI.WebControls;
using TTQT.TTQT_Code.Info;
using FileInfo = TTQT.TTQT_Code.Info.FileInfo;
using TTQT.TTQT_Code.Info;
namespace TTQT.TTQT_Code
{
    /// <summary>
    /// @kk
    /// This class is implemented as Singleton Pattern and used to access database.
    /// </summary>
    public class CoreDAO
    {
        #region New Methods
        /// <summary>
        /// Phương thức này dùng để khóa/mở khóa một user. Nếu là user GDV thì khóa luôn kho để người khác ko xuất vào đc.
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="status"></param>
        public void lock_UnlockUserAndMaKho(string userName,string status)
        {
            SqlConnection conn = new SqlConnection(TTQTCommon.DBConnectionString);
            SqlCommand cmd = new SqlCommand("User_Lock_Unlock", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@User_name", userName);
            cmd.Parameters.AddWithValue("@status", status);
            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
            catch
            { }
            finally
            {
                if (conn.State == ConnectionState.Open) conn.Close();
                conn.Dispose();
                cmd.Dispose();
            }
        }
        /// <summary>
        /// Phương thức này để xem có user nào đã dùng sibsid này chưa.
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="sibsid"></param>
        /// <returns></returns>
        public string getCheckUserNameSIBS(string userName, string sibsid)
        {
            string kq = "";
            SqlConnection conn = new SqlConnection(TTQTCommon.DBConnectionString);
            SqlCommand cmd = new SqlCommand("getCheckUserNameSIBS", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@User_name", userName);
            cmd.Parameters.AddWithValue("@SIBSID", sibsid);
            try
            {
                conn.Open();
                kq = cmd.ExecuteScalar().ToString();
            }
            catch (Exception exxx)
            { }
            finally
            {
                if (conn.State == ConnectionState.Open) conn.Close();
                conn.Dispose();
                cmd.Dispose();
            }
            return kq;
        }
#endregion
    }
}


/// Ghi chú
/// Khi gọi Store mà một tham số là null thì sẽ không chạy được và gặp ngoại lệ là Tham số bị thiếu.
/// Vậy làm thế nào để có thể sử dụng một giá trị null cho một tham số khi gọi store?